perm filename EDIT1.LSP[BNF,JRA] blob sn#005909 filedate 1972-10-23 generic text, type T, neo UTF8

(DEFPROP <ST> 
 (LAMBDA NIL (NLRR (QUOTE ST) (FUNCTION (LAMBDA NIL (COND ((AND (<F1>) (CH ;)) (STK 1)) (*NIL*)))))) 
EXPR)

(DEFPROP <F1> 
 (LAMBDA NIL
  (NLRR (QUOTE F1)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (CH /[) (<FLIST>) (CH /])) (CONS (QUOTE COND) (STK 1)))
		((AND (SPWD T)) (QUOTE T))
		((AND (<F2>)) (STK 0))
		(*NIL*)))))) 
EXPR)

(DEFPROP <FLIST> 
 (LAMBDA NIL
  (NLRR (QUOTE FLIST)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (<F1>) (QCH →) (<F1A>) (CH ;) (<FLIST>))
		 (CONS (CONS (STK 4) (CONS (STK 2) NIL)) (STK 0)))
		((AND (<F1>) (QCH →) (<F1A>)) (CONS (CONS (STK 2) (CONS (STK 0) NIL)) NIL))
		(*NIL*)))))) 
EXPR)

(DEFPROP <F1A> 
 (LAMBDA NIL (NLRR (QUOTE F1A) (FUNCTION (LAMBDA NIL (COND ((AND (<F1>)) (STK 0)) (*NIL*)))))) 
EXPR)

(DEFPROP <F2> 
 (LAMBDA NIL
  (LRR (QUOTE F2)
       (FUNCTION (LAMBDA NIL (COND ((AND (<F3>)) (STK 0)) (*NIL*))))
       (FUNCTION
	(LAMBDA (<*>) (COND ((AND (CH ∨) (<F3>)) (CONS (QUOTE OR) (CONS <*> (CONS (STK 0) NIL)))) (*NIL*)))))) 
EXPR)

(DEFPROP <F3> 
 (LAMBDA NIL
  (LRR (QUOTE F3)
       (FUNCTION (LAMBDA NIL (COND ((AND (<F4>)) (STK 0)) (*NIL*))))
       (FUNCTION
	(LAMBDA (<*>) (COND ((AND (CH ∧) (<F4>)) (CONS (QUOTE AND) (CONS <*> (CONS (STK 0) NIL)))) (*NIL*)))))) 
EXPR)

(DEFPROP <F4> 
 (LAMBDA NIL
  (NLRR (QUOTE F4)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (CH /() (<F1>) (CH /))) (STK 1))
		((AND (CH ¬) (<F4>)) (CONS (QUOTE NOT) (CONS (STK 0) NIL)))
		((AND (<FAL>) (<F1>))
		 (CONS (QUOTE PROG)
		       (CONS (CONS (QUOTE L) NIL)
			     (CONS (CONS (QUOTE SETQ) (CONS (QUOTE L) (CONS (CONS (QUOTE DOMC) NIL) NIL)))
				   (CONS (QUOTE A)
					 (CONS (CONS (QUOTE SETQ)
						     (CONS (STK 1)
							   (CONS (CONS (QUOTE CAR) (CONS (QUOTE L) NIL)) NIL)))
					       (CONS (CONS (QUOTE COND)
							   (CONS (CONS (CONS (QUOTE NOT) (CONS (STK 0) NIL))
								       (CONS
									(CONS (QUOTE RETURN) (CONS NIL NIL))
									NIL))
 								 NIL))
						     (CONS (CONS (QUOTE SETQ)
								 (CONS (QUOTE L)
								       (CONS (CONS (QUOTE CDR)
										   (CONS (QUOTE L) NIL))
 									     NIL)))
							   (CONS (CONS (QUOTE COND)
								       (CONS (CONS (QUOTE L)
										   (CONS
										    (CONS
										     (QUOTE GO)
										     (CONS (QUOTE A) NIL))
										    NIL))
 									     NIL))
								 (CONS (CONS (QUOTE RETURN)
									     (CONS (QUOTE T) NIL))
 								       NIL))))))))))
		((AND (<TEL>) (<F1>))
		 (CONS (QUOTE PROG)
		       (CONS (CONS (QUOTE L) NIL)
			     (CONS (CONS (QUOTE SETQ) (CONS (QUOTE L) (CONS (CONS (QUOTE DOMC) NIL) NIL)))
				   (CONS (QUOTE A)
					 (CONS (CONS (QUOTE SETQ)
						     (CONS (STK 1)
							   (CONS (CONS (QUOTE CAR) (CONS (QUOTE L) NIL)) NIL)))
					       (CONS (CONS (QUOTE COND)
							   (CONS (CONS (STK 0)
								       (CONS
									(CONS (QUOTE RETURN)
									      (CONS (QUOTE T) NIL))
									NIL))
 								 NIL))
						     (CONS (CONS (QUOTE SETQ)
								 (CONS (QUOTE L)
								       (CONS (CONS (QUOTE CDR)
										   (CONS (QUOTE L) NIL))
 									     NIL)))
							   (CONS (CONS (QUOTE COND)
								       (CONS (CONS (QUOTE L)
										   (CONS
										    (CONS
										     (QUOTE GO)
										     (CONS (QUOTE A) NIL))
										    NIL))
 									     NIL))
								 (CONS (CONS (QUOTE RETURN) (CONS NIL NIL))
 								       NIL))))))))))
		((AND (<FAT>) (<F1>))
		 (CONS (QUOTE PROG)
		       (CONS (CONS (QUOTE %T) NIL)
			     (CONS (CONS (QUOTE SETQ) (CONS (QUOTE %T) (CONS (CONS (QUOTE DOML) NIL) NIL)))
				   (CONS (QUOTE A)
					 (CONS (CONS (QUOTE SETQ)
						     (CONS (STK 1)
							   (CONS (CONS (QUOTE CAR) (CONS (QUOTE %T) NIL))
 								 NIL)))
					       (CONS (CONS (QUOTE COND)
							   (CONS (CONS (CONS (QUOTE NOT) (CONS (STK 0) NIL))
								       (CONS
									(CONS (QUOTE RETURN) (CONS NIL NIL))
									NIL))
 								 NIL))
						     (CONS (CONS (QUOTE SETQ)
								 (CONS (QUOTE %T)
								       (CONS (CONS (QUOTE CDR)
										   (CONS (QUOTE %T) NIL))
 									     NIL)))
							   (CONS (CONS (QUOTE COND)
								       (CONS (CONS (QUOTE %T)
										   (CONS
										    (CONS
										     (QUOTE GO)
										     (CONS (QUOTE A) NIL))
										    NIL))
 									     NIL))
								 (CONS (CONS (QUOTE RETURN)
									     (CONS (QUOTE T) NIL))
 								       NIL))))))))))
		((AND (<TET>) (<F1>))
		 (CONS (QUOTE PROG)
		       (CONS (CONS (QUOTE %T) NIL)
			     (CONS (CONS (QUOTE SETQ) (CONS (QUOTE %T) (CONS (CONS (QUOTE DOML) NIL) NIL)))
				   (CONS (QUOTE A)
					 (CONS (CONS (QUOTE SETQ)
						     (CONS (STK 1)
							   (CONS (CONS (QUOTE CAR) (CONS (QUOTE %T) NIL))
 								 NIL)))
					       (CONS (CONS (QUOTE COND)
							   (CONS (CONS (STK 0)
								       (CONS
									(CONS (QUOTE RETURN)
									      (CONS (QUOTE T) NIL))
									NIL))
 								 NIL))
						     (CONS (CONS (QUOTE SETQ)
								 (CONS (QUOTE %T)
								       (CONS (CONS (QUOTE CDR)
										   (CONS (QUOTE %T) NIL))
 									     NIL)))
							   (CONS (CONS (QUOTE COND)
								       (CONS (CONS (QUOTE %T)
										   (CONS
										    (CONS
										     (QUOTE GO)
										     (CONS (QUOTE A) NIL))
										    NIL))
 									     NIL))
								 (CONS (CONS (QUOTE RETURN) (CONS NIL NIL))
 								       NIL))))))))))
		((AND (<PREDIC>)) (STK 0))
		(*NIL*)))))) 
EXPR)

(DEFPROP <FAL> 
 (LAMBDA NIL (NLRR (QUOTE FAL) (FUNCTION (LAMBDA NIL (COND ((AND (CH ∀) (<VARL>)) (STK 0)) (*NIL*)))))) 
EXPR)

(DEFPROP <TEL> 
 (LAMBDA NIL (NLRR (QUOTE TEL) (FUNCTION (LAMBDA NIL (COND ((AND (CH ∃) (<VARL>)) (STK 0)) (*NIL*)))))) 
EXPR)

(DEFPROP <FAT> 
 (LAMBDA NIL (NLRR (QUOTE FAT) (FUNCTION (LAMBDA NIL (COND ((AND (CH ∀) (<VART>)) (STK 0)) (*NIL*)))))) 
EXPR)

(DEFPROP <TET> 
 (LAMBDA NIL (NLRR (QUOTE TET) (FUNCTION (LAMBDA NIL (COND ((AND (CH ∃) (<VART>)) (STK 0)) (*NIL*)))))) 
EXPR)

(DEFPROP <VARL> 
 (LAMBDA NIL
  (NLRR (QUOTE VARL)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (SPWD L1)) (QUOTE L1))
		((AND (SPWD L2)) (QUOTE L2))
		((AND (SPWD L3)) (QUOTE L3))
		((AND (SPWD L4)) (QUOTE L4))
		(*NIL*)))))) 
EXPR)

(DEFPROP <VART> 
 (LAMBDA NIL
  (NLRR (QUOTE VART)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (SPWD T1)) (QUOTE T1))
		((AND (SPWD T2)) (QUOTE T2))
		((AND (SPWD T3)) (QUOTE T3))
		((AND (SPWD T4)) (QUOTE T4))
		(*NIL*)))))) 
EXPR)

(DEFPROP <VARC> 
 (LAMBDA NIL
  (NLRR (QUOTE VARC)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (SPWD C)) (QUOTE C))
		((AND (SPWD C1)) (QUOTE C1))
		((AND (SPWD C2)) (QUOTE C2))
		(*NIL*)))))) 
EXPR)

(DEFPROP <PREDIC> 
 (LAMBDA NIL
  (NLRR (QUOTE PREDIC)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (CH /@) (<LISPR>)) (STK 0))
		((AND (<TERM0>) (<OPR>) (<TERM>)) (CONS (STK 1) (CONS (STK 2) (CONS (STK 0) NIL))))
		(*NIL*)))))) 
EXPR)

(DEFPROP <TERM0> 
 (LAMBDA NIL (NLRR (QUOTE TERM0) (FUNCTION (LAMBDA NIL (COND ((AND (<TERM>)) (STK 0)) (*NIL*)))))) 
EXPR)

(DEFPROP <LISPR> 
 (LAMBDA NIL
  (NLRR (QUOTE LISPR)
	(FUNCTION
	 (LAMBDA NIL (COND ((AND (<ATOM>)) (STK 0)) ((AND (CH /() (<LISPL>) (CH /))) (STK 1)) (*NIL*)))))) 
EXPR)

(DEFPROP <LISPL> 
 (LAMBDA NIL
  (NLRR (QUOTE LISPL)
	(FUNCTION (LAMBDA NIL (COND ((AND (<LISPR>) (<LISPL>)) (CONS (STK 1) (STK 0))) ((AND) NIL) (*NIL*)))))) 
EXPR)

(DEFPROP <OPR> 
 (LAMBDA NIL
  (NLRR (QUOTE OPR)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (CH =)) (QUOTE EQ))
		((AND (CH ≠)) (QUOTE NEQ))
		((AND (CH <)) (QUOTE LESSP))
		((AND (CH >)) (QUOTE GREATERP))
		((AND (CH ε)) (QUOTE MATCHER))
		(*NIL*)))))) 
EXPR)

(DEFPROP <TERM> 
 (LAMBDA NIL
  (NLRR (QUOTE TERM)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (CH ∂) (CH /() (<VARL>) (CH /)))
		 (CONS (QUOTE DEPTH) (CONS (CONS (QUOTE LIST) (CONS (STK 1) NIL)) NIL)))
		((AND (CH ∂) (CH /() (<VART>) (CH /)))
		 (CONS (QUOTE DEPTH1) (CONS (CONS (QUOTE LIST) (CONS (STK 1) NIL)) NIL)))
		((AND (CH ∂) (CH /() (<VARC>) (CH /)))
		 (CONS (QUOTE DEPTH) (CONS (CONS (QUOTE CDR) (CONS (STK 1) NIL)) NIL)))
		((AND (CH β) (CH /() (<VARC>) (CH /))) (CONS (QUOTE TREEDEP) (CONS (STK 1) NIL)))
		((AND (<VARL>)) (STK 0))
		((AND (<VART>)) (STK 0))
		((AND (<VARC>)) (STK 0))
		((AND (SPWD TR) (CH /() (<VARC>) (CH /))) (CONS (QUOTE TREE) (CONS (STK 1) NIL)))
		((AND (CH α) (CH /() (<VARC>) (CH /)))
		 (CONS (QUOTE LENGTH) (CONS (CONS (QUOTE CDR) (CONS (STK 1) NIL)) NIL)))
		((AND (CH α) (CH /() (<VART>) (CH /))) (CONS (QUOTE NOSYM) (CONS (STK 1) NIL)))
		((AND (CH α) (CH /() (<VARL>) (CH /))) (CONS (QUOTE NOSYM) (CONS (STK 1) NIL)))
		((AND (CH /+)) (QUOTE %PL))
		((AND (CH /-)) (QUOTE %NG))
		((AND (CH ⊂) (<MATCHLIST>) (CH ⊃)) (CONS (QUOTE AND) (STK 1)))
		((AND (CH ⊃) (<MATCHLIST>) (CH ⊂)) (CONS (QUOTE OR) (STK 1)))
		((AND (<NUMBER>)) (STK 0))
		((AND (<MATCH>)) (STK 0))
		(*NIL*)))))) 
EXPR)

(DEFPROP <MATCHLIST> 
 (LAMBDA NIL
  (NLRR (QUOTE MATCHLIST)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (<MATCH>) (CH /,) (<MATCHLIST>)) (CONS (STK 2) (STK 0)))
		((AND (<MATCH>)) (CONS (STK 0) NIL))
		(*NIL*)))))) 
EXPR)

(DEFPROP <MATCH> 
 (LAMBDA NIL
  (NLRR (QUOTE MATCH)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (<NOT1>) (<PRED>)) (CONS (QUOTE %NG) (STK 0)))
		((AND (<NOT1>) (<PREDLET>)) (CONS (QUOTE %NG) (CONS (STK 0) NIL)))
		((AND (<ID>) (CH /[) (<VARLIST>) (CH /])) (CONS (QUOTE CL) (CONS (CONS (STK 3) (STK 1)) NIL)))
		((AND (<PRED>)) (STK 0))
		((AND (<PREDLET>)) (CONS (STK 0) NIL))
		((AND (<TM>)) (STK 0))
		((AND (<FNLET>)) (CONS (STK 0) NIL))
		((AND (<ID>)) (CONS (QUOTE CL) (CONS (STK 0) NIL)))
		((AND (<NUMBER>)) (CONS (QUOTE CL) (CONS (STK 0) NIL)))
		(*NIL*)))))) 
EXPR)

(DEFPROP >ST< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>F1< 1) (LIST (STK1) (QUOTE (:CH ;))))))))) 
EXPR)

(DEFPROP >F1< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (COND . *))) (>FLIST< 0))
		   (LIST (QUOTE (:CH /[)) (STK0) (QUOTE (:CH /]))))
		  ((EQ (QUOTE T) (STK1)) (QUOTE T))
		  ((>F2< 1) (STK1))))))) 
EXPR)

(DEFPROP >FLIST< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE ((* *)))) (>F1< 1) (>F1A< 0)) (LIST (STK1) (QUOTE (:CH →)) (STK0)))
		  ((AND (MATCH (QUOTE ((* *) . *))) (>F1< 2) (>F1A< 1) (>FLIST< 0))
		   (LIST (STK2) (QUOTE (:CH →)) (STK1) (QUOTE (:CH ;)) (STK0)))))))) 
EXPR)

(DEFPROP >F1A< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>F1< 1) (STK1))))))) 
EXPR)

(DEFPROP >F2< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (OR * *))) (>F2< 1) (>F3< 0)) (LIST (STK1) (QUOTE (:CH ∨)) (STK0)))
		  ((>F3< 1) (STK1))))))) 
EXPR)

(DEFPROP >F3< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (AND * *))) (>F3< 1) (>F4< 0)) (LIST (STK1) (QUOTE (:CH ∧)) (STK0)))
		  ((>F4< 1) (STK1))))))) 
EXPR)

(DEFPROP >F4< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (NOT *))) (>F4< 0)) (LIST (QUOTE (:CH ¬)) (STK0)))
		  ((AND (MATCH
			 (QUOTE
			  (PROG (L)
				(SETQ L (DOMC))
 			   A    (SETQ * (CAR L))
				(COND ((NOT *) (RETURN NIL)))
				(SETQ L (CDR L))
				(COND (L (GO A)))
				(RETURN T))))
			(>FAL< 1)
			(>F1< 0))
		   (LIST (STK1) (STK0)))
		  ((AND (MATCH
			 (QUOTE
			  (PROG (L)
				(SETQ L (DOMC))
 			   A    (SETQ * (CAR L))
				(COND (* (RETURN T)))
				(SETQ L (CDR L))
				(COND (L (GO A)))
				(RETURN NIL))))
			(>TEL< 1)
			(>F1< 0))
		   (LIST (STK1) (STK0)))
		  ((AND (MATCH
			 (QUOTE
			  (PROG (%T)
				(SETQ %T (DOML))
 			   A    (SETQ * (CAR %T))
				(COND ((NOT *) (RETURN NIL)))
				(SETQ %T (CDR %T))
				(COND (%T (GO A)))
				(RETURN T))))
			(>FAT< 1)
			(>F1< 0))
		   (LIST (STK1) (STK0)))
		  ((AND (MATCH
			 (QUOTE
			  (PROG (%T)
				(SETQ %T (DOML))
 			   A    (SETQ * (CAR %T))
				(COND (* (RETURN T)))
				(SETQ %T (CDR %T))
				(COND (%T (GO A)))
				(RETURN NIL))))
			(>TET< 1)
			(>F1< 0))
		   (LIST (STK1) (STK0)))
		  ((>PREDIC< 1) (STK1))
		  ((>F1< 1) (LIST (QUOTE (:CH /()) (STK1) (QUOTE (:CH /)))))))))) 
EXPR)

(DEFPROP >FAL< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>VARL< 1) (LIST (QUOTE (:CH ∀)) (STK1)))))))) 
EXPR)

(DEFPROP >TEL< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>VARL< 1) (LIST (QUOTE (:CH ∃)) (STK1)))))))) 
EXPR)

(DEFPROP >FAT< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>VART< 1) (LIST (QUOTE (:CH ∀)) (STK1)))))))) 
EXPR)

(DEFPROP >TET< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>VART< 1) (LIST (QUOTE (:CH ∃)) (STK1)))))))) 
EXPR)

(DEFPROP >VARL< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((EQ (QUOTE L1) (STK1)) (QUOTE L1))
		  ((EQ (QUOTE L2) (STK1)) (QUOTE L2))
		  ((EQ (QUOTE L3) (STK1)) (QUOTE L3))
		  ((EQ (QUOTE L4) (STK1)) (QUOTE L4))))))) 
EXPR)

(DEFPROP >VART< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((EQ (QUOTE T1) (STK1)) (QUOTE T1))
		  ((EQ (QUOTE T2) (STK1)) (QUOTE T2))
		  ((EQ (QUOTE T3) (STK1)) (QUOTE T3))
		  ((EQ (QUOTE T4) (STK1)) (QUOTE T4))))))) 
EXPR)

(DEFPROP >VARC< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((EQ (QUOTE C) (STK1)) (QUOTE C))
		  ((EQ (QUOTE C1) (STK1)) (QUOTE C1))
		  ((EQ (QUOTE C2) (STK1)) (QUOTE C2))))))) 
EXPR)

(DEFPROP >PREDIC< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (* * *))) (>OPR< 2) (>TERM0< 1) (>TERM< 0)) (LIST (STK1) (STK2) (STK0)))
		  ((>LISPR< 1) (LIST (QUOTE (:CH /@)) (STK1)))))))) 
EXPR)

(DEFPROP >TERM0< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>TERM< 1) (STK1))))))) 
EXPR)

(DEFPROP >LISPR< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((>ATOM< 1) (STK1)) ((>LISPL< 1) (LIST (QUOTE (:CH /()) (STK1) (QUOTE (:CH /)))))))))) 
EXPR)

(DEFPROP >LISPL< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((EQ (QUOTE NIL) (STK1)) FOOBAZ)
		  ((AND (MATCH (QUOTE (* . *))) (>LISPR< 1) (>LISPL< 0)) (LIST (STK1) (STK0)))))))) 
EXPR)

(DEFPROP >OPR< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((EQ (QUOTE EQ) (STK1)) (QUOTE (:CH =)))
		  ((EQ (QUOTE NEQ) (STK1)) (QUOTE (:CH ≠)))
		  ((EQ (QUOTE LESSP) (STK1)) (QUOTE (:CH <)))
		  ((EQ (QUOTE GREATERP) (STK1)) (QUOTE (:CH >)))
		  ((EQ (QUOTE MATCHER) (STK1)) (QUOTE (:CH ε)))))))) 
EXPR)

(DEFPROP >TERM< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (DEPTH (LIST *)))) (>VARL< 0))
		   (LIST (QUOTE (:CH ∂)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
		  ((AND (MATCH (QUOTE (DEPTH1 (LIST *)))) (>VART< 0))
		   (LIST (QUOTE (:CH ∂)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
		  ((AND (MATCH (QUOTE (DEPTH (CDR *)))) (>VARC< 0))
		   (LIST (QUOTE (:CH ∂)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
		  ((AND (MATCH (QUOTE (TREEDEP *))) (>VARC< 0))
		   (LIST (QUOTE (:CH β)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
		  ((>VARL< 1) (STK1))
		  ((>VART< 1) (STK1))
		  ((>VARC< 1) (STK1))
		  ((AND (MATCH (QUOTE (TREE *))) (>VARC< 0))
		   (LIST (QUOTE TR) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
		  ((AND (MATCH (QUOTE (LENGTH (CDR *)))) (>VARC< 0))
		   (LIST (QUOTE (:CH α)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
		  ((AND (MATCH (QUOTE (NOSYM *))) (>VART< 0))
		   (LIST (QUOTE (:CH α)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
		  ((AND (MATCH (QUOTE (NOSYM *))) (>VARL< 0))
		   (LIST (QUOTE (:CH α)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
		  ((EQ (QUOTE %PL) (STK1)) (QUOTE (:CH /+)))
		  ((EQ (QUOTE %NG) (STK1)) (QUOTE (:CH /-)))
		  ((AND (MATCH (QUOTE (AND . *))) (>MATCHLIST< 0))
		   (LIST (QUOTE (:CH ⊂)) (STK0) (QUOTE (:CH ⊃))))
		  ((AND (MATCH (QUOTE (OR . *))) (>MATCHLIST< 0))
		   (LIST (QUOTE (:CH ⊃)) (STK0) (QUOTE (:CH ⊂))))
		  ((>MATCH< 1) (STK1))
		  ((>NUMBER< 1) (STK1))))))) 
EXPR)

(DEFPROP >MATCHLIST< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (*))) (>MATCH< 0)) (STK0))
		  ((AND (MATCH (QUOTE (* . *))) (>MATCH< 1) (>MATCHLIST< 0))
		   (LIST (STK1) (QUOTE (:CH /,)) (STK0)))))))) 
EXPR)

(DEFPROP >MATCH< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (%NG . *))) (>PRED< 0)) (LIST (VALUE (NIL) PNAME (#51442)) (STK0)))
		  ((AND (MATCH (QUOTE (%NG *))) (>PREDLET< 0)) (LIST (VALUE (NIL) PNAME (#51442)) (STK0)))
		  ((AND (MATCH (QUOTE (CL (* . *)))) (>ID< 1) (>VARLIST< 0))
		   (LIST (STK1) (QUOTE (:CH /[)) (STK0) (QUOTE (:CH /]))))
		  ((>PRED< 1) (STK1))
		  ((AND (MATCH (QUOTE (*))) (>PREDLET< 0)) (STK0))
		  ((>TM< 1) (STK1))
		  ((AND (MATCH (QUOTE (*))) (>FNLET< 0)) (STK0))
		  ((AND (MATCH (QUOTE (CL *))) (>ID< 0)) (STK0))
		  ((AND (MATCH (QUOTE (CL *))) (>NUMBER< 0)) (STK0))))))) 
EXPR)